/**
 * @author Aaron
 * @createTime 10:40 2022/6/1
 **/
package api_models

import (
	"longmen/server/pkg/db/mysql/models/models_main"
)

type GetNobleByIdReq struct {
	Id uint8 `json:"id" example:"1" validate:"min=1,max=50"` //贵族ID,1-剑士 2-骑士 3-领主 4-公爵 5-君王 6-帝皇 7-超神
}

type ChargeNobleReq struct {
	Id       uint8 `json:"id" example:"1" validate:"min=1,max=50"` //贵族ID
	AnchorId uint  `json:"anchor_id" example:"6000401"`            //主播直播间下开通则填写主播ID,否则填0
}

type UpgradeNobleReq struct {
	Id        uint8 `json:"id" example:"1" validate:"min=1,max=50"`         //贵族ID
	CurrentID uint8 `json:"current_id" example:"1" validate:"min=1,max=50"` //当前贵族ID
	AnchorId  uint  `json:"anchor_id" example:"6000401"`                    //主播直播间下开通则填写主播ID,否则填0
}

type NobleItems struct {
	Icon    string `json:"icon"`
	Name    string `json:"name"`
	Amount  int    `json:"amount"` // 数量
	Remark  string `json:"remark"`
	Type    int    `json:"type"` //类型:0-普通礼物 1-豪华礼物 2-活动赠送礼物 100-喇叭 101-弹幕 102-坐骑 103-改名卡 104-体验卡
	PropsID int    `json:"props_id"`
}

type GetNobleById struct {
	Id                    int     `json:"id"`                      //贵族ID
	Price                 uint32  `json:"price"`                   //充值价格
	RenewPrice            uint32  `json:"renew_price"`             //续费价格
	Reward                uint32  `json:"reward"`                  //充值返利
	RenewReward           float32 `json:"renew_reward"`            //续费返利
	MountTitle            string  `json:"mount_title"`             //坐骑标题
	MountDescription      string  `json:"mount_description"`       //坐骑描述
	PromoTitle            string  `json:"promo_title"`             //优惠标题标题
	PromoDescription      string  `json:"promo_description"`       //优惠描述描述
	PropTitle             string  `json:"prop_title"`              //道具(挂件)标题
	PropDescription       string  `json:"prop_description"`        //道具(挂件)描述
	VipServiceTitle       string  `json:"vip_service_title"`       //vip客服标题
	VipServiceDescription string  `json:"vip_service_description"` //vip客服描述
	SpeakTitle            string  `json:"speak_title"`             //发言特权标题
	SpeakDescription      string  `json:"speak_description"`       //发言特权描述
	PreventBanTitle       string  `json:"prevent_ban_title"`       //防禁言标题
	PreventBanDescription string  `json:"prevent_ban_description"` //防禁言描述
	VipSeatTitle          string  `json:"vip_seat_title"`          //vip贵宾席标题
	VipSeatDescription    string  `json:"vip_seat_description"`    //vip贵宾席描述
	StickerTitle          string  `json:"sticker_title"`           //专属贴图标题
	StickerDescription    string  `json:"sticker_description"`     //专属贴图描述
	GiftTitle             string  `json:"gift_title"`              //礼物标题
	GiftDescription       string  `json:"gift_description"`        //礼物描述
}

type NobleNew struct {
	Id            int               `json:"id"`                      //贵族ID
	Name          string            `json:"name"`                    //贵族title
	Price         uint32            `json:"price"`                   //充值价格
	RenewPrice    uint32            `json:"renew_price"`             //续费价格
	GiftDiscount  int               `json:"gift_discount"`           //礼物折扣
	PropsID       int               `json:"props_id"`                //坐骑ID
	Barrage       string            `json:"barrage"`                 //弹幕
	Trumpet       string            `json:"trumpet"`                 //喇叭
	Weight        int               `json:"weight"`                  //权重
	MountDetail   models_main.Props `gorm:"-" json:"mount_detail"`   //坐骑详情
	BarrageDetail []NobleItems      `gorm:"-" json:"barrage_detail"` //弹幕详情
	TrumpetDetail NobleItems        `gorm:"-" json:"trumpet_detail"` //喇叭详情
}

type GetNobleByIdResp struct {
	Expiration int64 `json:"expiration"`         //贵族过期剩下的天数
	From       int   `gorm:"-" json:"from"`      // 1购买2系统赠送
	AnchorID   int64 `gorm:"-" json:"anchor_id"` // 来源
	NobleNew
}

type GetNobleListResp struct {
	NobleNew
}

type ChargeNobleResp struct {
	IsSuccess bool `json:"is_success"` //是否充值成功
}

type NoblePrice struct {
	Id         uint   `json:"id"`          //ID
	NobleId    uint8  `json:"noble_id"`    //贵族ID
	RenewPrice uint32 `json:"renew_price"` //续费价格
}

type GetNoblePriceList struct {
	Id         uint8  `json:"id"`                          //1-剑士 2-骑士 3-领主 4-公爵 5-君王 6-帝皇 7-超神
	Price      uint32 `json:"price" example:"50000"`       //充值价格
	RenewPrice uint32 `json:"renew_price" example:"50000"` //续费价格
	IsRenew    bool   `json:"is_renew"`                    //是否是续费
}
type GetNoblePrice struct {
	Id      uint8  `json:"id"`                    // 1-剑士 2-骑士 3-领主 4-公爵 5-君王 6-帝皇 7-超神
	Price   uint32 `json:"price" example:"50000"` //充值价格
	IsRenew bool   `json:"is_renew"`              //是否是续费
}
type GetNoble struct {
	RenewPrice float32 `json:"renew_price"`
	GiftId     uint16  `json:"gift_id"`
}
type NobleReward struct {
	Reward      uint32  `json:"reward"`       //开通奖励
	RenewReward float32 `json:"renew_reward"` //续费奖励
}
type GetPropByNobleId struct {
	PropId uint16 `json:"prop_id"`
}

type NobleRecordRes struct {
	models_main.NobleRecord
	Name         string `json:"name"`     //VIP 贵族名称
	RankId       uint8  `json:"rank_id"`  //VIP贵族等级(弃用)
	NobleId      uint8  `json:"noble_id"` //VIP贵族等级
	GiftDiscount int    `json:"gift_discount"`
}

// ReceiveNobleResp 注册用户领取VIP返回对象
type ReceiveNobleResp struct {
	VipDay  uint8  `json:"vip_day"`  //VIP剩余天数
	VipName string `json:"vip_name"` //VIP贵族名
	RankId  uint8  `json:"rank_id"`  //VIP等级序号
}
